﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

namespace WebTranslator
{
    [Serializable]
    public class Tekst
    {
        public string nazwa;
        public string autor;
        public List<string> Orginal = new List<string>();
        public List<List<Tlumaczenie>> Tlumaczenia = new List<List<Tlumaczenie>>();


        public Tekst(string nazwa, string autor, string tex, string parser)
        {
            this.nazwa = nazwa;
            this.autor = autor;
            char c = '`';
            string wyn = "";
            string cc = "";
            cc+=c;
            tex=tex.Replace(parser, cc);
            foreach (char e in tex) if (e!=c) wyn+=e;
            else{
              Orginal.Add(wyn); wyn = "";
            }
            Orginal.Add(wyn);
            for (int i = 0; i < Orginal.Count; i++) Tlumaczenia.Add(new List<Tlumaczenie>());
        }

        public void Zapisz(string nazwapliku) {
            if (File.Exists(nazwapliku)) File.Delete(nazwapliku); 
            FileStream f = File.OpenWrite(nazwapliku);
            Stream sw = f as Stream;
            BinaryFormatter b = new BinaryFormatter();
            b.Serialize(sw, this);
            sw.Close();
        }

        public static Tekst Wczytaj(string nazwapliku) {
            Tekst t = null;
            try
            { 
                FileStream f = File.OpenRead(nazwapliku);
                Stream sw = f as Stream;
                BinaryFormatter b = new BinaryFormatter();
                t = b.Deserialize(f) as Tekst;
                sw.Close();
            }
            catch (Exception ex) { Console.WriteLine(ex); return null; }
            
            return t;
        }

        public void DodajTlumaczenie(int nr_fragmentu, string autor, string tekst) {
          Tlumaczenie t1 = new Tlumaczenie();
          t1.autor = autor;
          t1.tekst = tekst;
          Tlumaczenia[nr_fragmentu].Add(t1);
        }

        public void Czysc() {
          Orginal.Clear();
          Tlumaczenia.Clear();
        }
    }


    [Serializable]
    public class Tlumaczenie
    {
        public string tekst;
        public string autor;
    }


}
